package com.hemaapp.yjnh;

import java.util.HashMap;

import xtom.frame.XtomConfig;
import xtom.frame.util.Md5Util;
import xtom.frame.util.XtomDeviceUuidFactory;
import xtom.frame.util.XtomSharedPreferencesUtil;
import android.content.Context;

import com.hemaapp.yjnh.nettask.ADListTask;
import com.hemaapp.yjnh.nettask.AddressListTask;
import com.hemaapp.yjnh.nettask.AdviceAddTask;
import com.hemaapp.yjnh.nettask.AfterSalesListTask;
import com.hemaapp.yjnh.nettask.AfterSalesTask;
import com.hemaapp.yjnh.nettask.AlipayTradeTask;
import com.hemaapp.yjnh.nettask.ApplyTask;
import com.hemaapp.yjnh.nettask.BankListTask;
import com.hemaapp.yjnh.nettask.BillExpressGetTask;
import com.hemaapp.yjnh.nettask.BlogAddTask;
import com.hemaapp.yjnh.nettask.BlogDetailGetTask;
import com.hemaapp.yjnh.nettask.BlogGetBySpecTask;
import com.hemaapp.yjnh.nettask.BlogListTask;
import com.hemaapp.yjnh.nettask.BlogSpecNameGetTask;
import com.hemaapp.yjnh.nettask.BlogTypeListTask;
import com.hemaapp.yjnh.nettask.CartCountTask;
import com.hemaapp.yjnh.nettask.CartListTask;
import com.hemaapp.yjnh.nettask.CartSaveOperateTask;
import com.hemaapp.yjnh.nettask.CashListTask;
import com.hemaapp.yjnh.nettask.ChatpushAddTask;
import com.hemaapp.yjnh.nettask.ClientAddTask;
import com.hemaapp.yjnh.nettask.ClientGetTask;
import com.hemaapp.yjnh.nettask.ClientInfoTask;
import com.hemaapp.yjnh.nettask.ClientListTask;
import com.hemaapp.yjnh.nettask.ClientLoginTask;
import com.hemaapp.yjnh.nettask.CmnNetTask;
import com.hemaapp.yjnh.nettask.CodeVerifyTask;
import com.hemaapp.yjnh.nettask.CouponRecordListTask;
import com.hemaapp.yjnh.nettask.CustomAdditionAddTask;
import com.hemaapp.yjnh.nettask.CustomBlogGetTask;
import com.hemaapp.yjnh.nettask.CustomBlogListTask;
import com.hemaapp.yjnh.nettask.CustomGoodsAddTask;
import com.hemaapp.yjnh.nettask.CustomizeCountTask;
import com.hemaapp.yjnh.nettask.DistrictListTask;
import com.hemaapp.yjnh.nettask.FamilyListTask;
import com.hemaapp.yjnh.nettask.FarmerCustomOrderListTask;
import com.hemaapp.yjnh.nettask.FarmerOrderListTask;
import com.hemaapp.yjnh.nettask.FarmerReturnOrderListTask;
import com.hemaapp.yjnh.nettask.FileUploadTask;
import com.hemaapp.yjnh.nettask.FollowCollectionListTask;
import com.hemaapp.yjnh.nettask.FootprintListTask;
import com.hemaapp.yjnh.nettask.GoodsGetTask;
import com.hemaapp.yjnh.nettask.GuideListTask;
import com.hemaapp.yjnh.nettask.HotDistrictListTask;
import com.hemaapp.yjnh.nettask.InitTask;
import com.hemaapp.yjnh.nettask.LandAddTask;
import com.hemaapp.yjnh.nettask.NationListTask;
import com.hemaapp.yjnh.nettask.NoticeListTask;
import com.hemaapp.yjnh.nettask.OrderAddTask;
import com.hemaapp.yjnh.nettask.OrderGetTask;
import com.hemaapp.yjnh.nettask.OrderGetTask2;
import com.hemaapp.yjnh.nettask.OrderListTask;
import com.hemaapp.yjnh.nettask.PayListTask;
import com.hemaapp.yjnh.nettask.ProvinceCityDistrictListTask;
import com.hemaapp.yjnh.nettask.RebateListTask;
import com.hemaapp.yjnh.nettask.ReplyAddTask;
import com.hemaapp.yjnh.nettask.ReplyListTask;
import com.hemaapp.yjnh.nettask.ReturnTypeListTask;
import com.hemaapp.yjnh.nettask.TradeRecordListTask;
import com.hemaapp.yjnh.nettask.UnionTradeTask;
import com.hemaapp.yjnh.nettask.WeixinTradeTask;
import com.hemaapp.yjnh.nettask.YijiaRecommendListTask;
import com.hemaapp.yjnh.nettask.ZouzouDateListTask;
import com.hemaapp.yjnh.nettask.ZouzouDistrictListTask;
import com.hemaapp.hm_FrameWork.HemaNetWorker;
import com.hemaapp.hm_FrameWork.HemaUtil;

/**
 * 网络请求工具类
 */
public class BaseNetWorker extends HemaNetWorker {
	/**
	 * 实例化网络请求工具类
	 * 
	 * @param mContext
	 */
	private Context mContext;

	public BaseNetWorker(Context mContext) {
		super(mContext);
		this.mContext = mContext;
	}

	/**
	 * 系统初始化
	 */
	public void init() {
		BaseHttpInformation information = BaseHttpInformation.INIT;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("lastloginversion", HemaUtil.getAppVersionForSever(mContext));// 版本号码(默认：1.0.0)
		params.put("device_sn", XtomDeviceUuidFactory.get(mContext));// 客户端硬件串号

		BaseNetTask task = new InitTask(information, params);
		executeTask(task);
	}
	
	@Override
	public void clientLogin() {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_LOGIN;
		HashMap<String, String> params = new HashMap<String, String>();
		String username = XtomSharedPreferencesUtil.get(mContext, "username");
		params.put("username", username);// 用户登录名 手机号或邮箱
		String password = XtomSharedPreferencesUtil.get(mContext, "password");
		params.put("password", password); // 登陆密码 服务器端存储的是32位的MD5加密串
		params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
		String version = HemaUtil.getAppVersionForSever(mContext);
		params.put("lastloginversion", version);// 登陆所用的系统版本号
		// 记录用户的登录版本，方便服务器运维统计

		BaseNetTask task = new ClientLoginTask(information, params);
		executeTask(task);
	}

	@Override
	public boolean thirdSave() {
		if (HemaUtil.isThirdSave(mContext)) {
			// DemoHttpInformation information = DemoHttpInformation.THIRD_SAVE;
			// HashMap<String, String> params = new HashMap<String, String>();
			// params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
			// String version = HemaUtil.getAppVersion(mContext);
			// params.put("lastloginversion", version);//
			// 登陆所用的系统版本号,记录用户的登录版本，方便服务器运维统计
			// String thirdtype = XtomSharedPreferencesUtil.get(mContext,
			// "thirdtype");
			// params.put("thirdtype", thirdtype);// 平台类型 1：微信 2：QQ 3：微博
			// String thirduid = XtomSharedPreferencesUtil.get(mContext,
			// "thirduid");
			// params.put("thirduid", thirduid);// 平台用户id 该平台唯一的id
			// String avatar = XtomSharedPreferencesUtil.get(mContext,
			// "avatar");
			// params.put("avatar", avatar);// 平台用户头像 图片地址
			// String nickname = XtomSharedPreferencesUtil.get(mContext,
			// "nickname");
			// params.put("nickname", nickname);// 平台用户昵称
			// String sex = XtomSharedPreferencesUtil.get(mContext, "sex");
			// params.put("sex", sex);// 姓名 "男"或"女"
			// String age = XtomSharedPreferencesUtil.get(mContext, "age");
			// params.put("age", age);// 年龄
			//
			// DemoNetTask task = new ThirdSaveTask(information, params);
			// executeTask(task);

			return true;
		} else {
			return false;
		}
	}

	/**
	 * 登录
	 */
	public void clientLogin(String username, String password) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_LOGIN;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("username", username);// 用户登录名 手机号或邮箱
		params.put("password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));
//		params.put("password", password); // 登陆密码 服务器端存储的是32位的MD5加密串
		params.put("devicetype", "2"); // 用户登录所用手机类型 1：苹果 2：安卓（方便服务器运维统计）
		String version = HemaUtil.getAppVersionForSever(mContext);
		params.put("lastloginversion", version);// 登陆所用的系统版本号
												// 记录用户的登录版本，方便服务器运维统计
		BaseNetTask task = new ClientLoginTask(information, params);
		executeTask(task);
	}

	/**
	 * 验证用户名是否合法
	 */
	public void clientVerify(String username) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_VERIFY;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("username", username);// 用户登录名 手机号或邮箱

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 申请随机验证码
	 */
	public void codeGet(String username) {
		BaseHttpInformation information = BaseHttpInformation.CODE_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("username", username);// 用户登录名 手机号或邮箱

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 验证随机码
	 */
	public void codeVerify(String username, String code) {
		BaseHttpInformation information = BaseHttpInformation.CODE_VERIFY;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("username", username);// 用户登录名 手机号或邮箱
		params.put("code", code);// 6位随机号码 测试阶段固定向服务器提交“123456”

		BaseNetTask task = new CodeVerifyTask(information, params);
		executeTask(task);
	}

	/**
	 * 用户注册
	 */
	public void clientAdd(String temp_token, String username, String password,
			String invitename, String district_name) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("temp_token", temp_token);// 临时令牌 可以有效防止机器人恶意注册（该值从验证随机码接口获取）
		params.put("username", username);// 用户注册名 本项目只允许邮箱注册 (客户端判断所填文本是否符合邮件格式)
		params.put("password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));
//		params.put("password", password);// 登陆密码
		params.put("invitename", invitename);// 用户昵称
		params.put("district_name", district_name);// 地区，例如济南市

		BaseNetTask task = new ClientAddTask(information, params);
		executeTask(task);
	}

	/**
	 * 保存用户资料
	 */
	public void clientSave(String token, String nickname, String sex, String mobile, String address) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_SAVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("nickname", nickname);// 用户昵称
		params.put("sex", sex);// 性别 男或女
		params.put("mobile", mobile);// 联系电话	可选传参数
		params.put("address", address);//详细地址	可选传参数

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 上传文件（图片，音频，视频）
	 */
	public void fileUpload(String token, String keytype, String keyid,
			String duration, String orderby, String content, String temp_file) {
		BaseHttpInformation information = BaseHttpInformation.FILE_UPLOAD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);//
		params.put("keytype", keytype); //上传操作类型
		params.put("keyid", keyid); //
		params.put("duration", duration); //
		params.put("orderby", orderby); //
		params.put("content", content);

		HashMap<String, String> files = new HashMap<String, String>();
		files.put("temp_file", temp_file); //

		BaseNetTask task = new FileUploadTask(information, params, files);
		executeTask(task);
	}

	/**
	 * 重设密码
	 */
	public void passwordReset(String temp_token, String new_password,
			String keytype) {
		BaseHttpInformation information = BaseHttpInformation.PASSWORD_RESET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("temp_token", temp_token);// 临时令牌
		params.put("new_password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(new_password)));
//		params.put("new_password", new_password);// 新密码
		params.put("keytype", keytype);// 密码类型 1：登陆密码 2：支付密码

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 修改并保存密码
	 */
	public void passwordSave(String token, String keytype, String old_password,
			String new_password) {
		BaseHttpInformation information = BaseHttpInformation.PASSWORD_SAVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 密码类型 1：登陆密码 2：支付密码
		params.put("old_password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(old_password)));// 旧密码
		params.put("new_password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(new_password)));// 新密码
//		params.put("old_password", old_password);// 旧密码
//		params.put("new_password", new_password);// 新密码

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 硬件注册保存
	 */
	public void deviceSave(String token, String deviceid, String channelid) {
		BaseHttpInformation information = BaseHttpInformation.DEVICE_SAVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("deviceid", deviceid);// 登陆手机硬件码 对应百度推送userid
		params.put("devicetype", "2");// 登陆手机类型 1:苹果 2:安卓
		params.put("channelid", channelid);// 百度推送渠道id 方便直接从百度后台进行推送测试

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}
	/**
	 * 首页广告列表
	 * */
	public void indexadList() {
		BaseHttpInformation information = BaseHttpInformation.INDEXAD_LIST;
		HashMap<String, String> params = new HashMap<String, String>();

		BaseNetTask task = new ADListTask(information, params);
		executeTask(task);
	}
	
    /**
     * 模块广告列表
     * */
    public void ModelADList(String model, String district_name) {
        BaseHttpInformation information = BaseHttpInformation.MODELAD_LIST;
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("model", model);// 模块类型  1乐乐；2走走；3特产；4地标
        params.put("district_name", district_name);// 可选传参数，地区/民族名称 如："济南"，"汉族"

        BaseNetTask task = new ADListTask(information, params);
        executeTask(task);
    }

	/**
	 * 粮库分类下广告位列表
	 * */
	public void getLiangkuADList(String typeid) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_TYPE_AD_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("typeid", typeid);// 分类id

		BaseNetTask task = new ADListTask(information, params);
		executeTask(task);
	}

	/**
	 * 意见反馈
	 */
	public void adviceAdd(String token, String content) {
		BaseHttpInformation information = BaseHttpInformation.ADVICE_ADD;
		HashMap<String, String> params = new HashMap<String, String>();

		params.put("token", token);// 登陆令牌
		params.put("content", content);// 意见内容

		BaseNetTask task = new AdviceAddTask(information, params);
		executeTask(task);
	}

	/**
	 * 退出登录
	 */
	public void clientLoginout(String token) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_LOGINOUT;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 获取商品详情信息
	 */
	public void blogGet(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 帖子主键id 从 帖子列表 获取
		params.put("id", id);// 帖子主键id 从 帖子列表 获取

		BaseNetTask task = new GoodsGetTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取帖子详情
	 */
	public void getBlogDetail(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 帖子主键id 从 帖子列表 获取
		params.put("id", id);// 帖子主键id 从 帖子列表 获取

		BaseNetTask task = new BlogDetailGetTask(information, params);
		executeTask(task);
	}

    /**
     * 通过规格获取商品详情
     * @param keyid
     * @param one_specname
     * @param two_specname
     */
    public void getBlogBySpec(String keyid, String one_specname, String two_specname) {
        BaseHttpInformation information = BaseHttpInformation.BLOG_GET_BY_SPEC;
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("keyid", keyid);
        params.put("one_specname", one_specname);
        params.put("two_specname", two_specname);

        BaseNetTask task = new BlogGetBySpecTask(information, params);
        executeTask(task);
    }

	/**
	 * 定制商品详情
	 */
	public void getCustomBlog(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.CUSTOM_BLOG_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 帖子主键id 从 帖子列表 获取
		params.put("id", id);// 帖子主键id 从 帖子列表 获取

		BaseNetTask task = new CustomBlogGetTask(information, params);
		executeTask(task);
	}

	/**获取商品列表
	 * @param keytype
	 * @param keyid
	 * @param orderby
	 * @param ordertype
	 * @param keyword
	 * @param saleflag
	 * @param topflag
	 * @param cheapflag
	 * @param score_percent
	 * @param seller_id
	 * @param lng
	 * @param lat
	 * @param district_name
	 * @param special_typename
	 * @param page
	 */
	public void blogList(String keytype, String keyid, String orderby,  String ordertype, 
			String keyword, String saleflag, String topflag,  String cheapflag, String score_percent,
			String seller_id, String lng, String lat, String district_name, String special_typename, String page) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("keytype", keytype);
		params.put("keyid", keyid);
		params.put("orderby", orderby);
		params.put("ordertype", ordertype);// 排序类型		1：降序        2：升序 
		params.put("keyword", keyword);// 搜索关键字	可选传参数，需要时传递
		params.put("saleflag", saleflag);// 农货状态	只有keytype=3时需要传递该参数；0：关闭；1：进行中
		params.put("topflag", topflag);// 推荐/热门景点标志	topflag=1，可选传参数，keytype=4,8,9时可传
		params.put("cheapflag", cheapflag);// 低价抢购标志	cheapflag=1，可选传参数，只有keytype=9时可传
		params.put("score_percent", score_percent);// 粮票占比	5-9的整数，可选传参数，只有keytype=8时可传
		params.put("seller_id", seller_id);// 卖家id	可选传参数，keyytype=4,5,9,10,11可传
		params.put("lng", lng);// 经度	可选传参数，需要时传递
		params.put("lat", lat);// 纬度	可选传参数，需要时传递
		params.put("district_name", district_name);// 地区	可选传参数，用于获取周边农需商品
		params.put("special_typename", special_typename);//特产分类	可选传参数，keytype=11是可传
		params.put("page", page);// 当前列表翻页索引 		第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new BlogListTask(information, params);
		executeTask(task);
	}

	/**获取用户列表
	 * @param keytype
	 * @param keyid
	 * @param orderby
	 * @param page
	 */
	public void clientList(String token, String keytype, String keyid, String orderby, String ordertype, 
			String role, String page, String lat, String lng) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);	//登录令牌	没有登录传空字符串
		params.put("keytype", keytype);	
		params.put("keyid", keyid);
		params.put("orderby", orderby);// 排序规则 默认传:1智能排序 ;2热销 ;3好评 ;4价格
		params.put("ordertype", ordertype);// 排序类型:1降序        2升序 
		params.put("role", role);// 可选传参数：6乐乐商家；7特产商家；11走走露营商家；12走走房车商家；21苗木商家；22花卉商家；23家电商家；24日用商品商家
		params.put("page", page);// 当前列表翻页索引 		第一页时请传递page=0，翻页时依次递增。
		params.put("lat", lat);// 纬度	
		params.put("lng", lng);// 经度

		BaseNetTask task = new ClientListTask(information, params);
		executeTask(task);
	}
	
	/**获取热门区域列表
	 * @param keytype
	 * @param page
	 */
	public void hotDistrictList(String keytype, String keyid, String page) {
		BaseHttpInformation information = BaseHttpInformation.HOTDISTRICT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", "");
		params.put("keytype", keytype);	//1：村游热门横向列表，最多5条 
										//2：村游热门纵向列表，更多热门区域 
										//3：田家热门横向列表，最多5条 
										//4：田家热门纵向列表，更多热门区域 
		params.put("keyid", keyid);//可选传参数，keytype=1时可传，例如："山东"，代表山东的热门村游，此时记录最多4条
		params.put("page", page);// 当前列表翻页索引 		第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new HotDistrictListTask(information, params);
		executeTask(task);
	}

	/**
	 * 订单列表
	 * 
	 * @param token
	 * @param keytype     
	 * @param page
	 */
	public void orderList(String token, String billtype, String keytype, String page) {
		BaseHttpInformation information = BaseHttpInformation.ORDER_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("billtype", billtype);//订单类型	1:普通订单；2:定制订单；3:预约订单；4代付订单
		params.put("keytype", keytype);//类型	1:全部；2:待支付；3:待发货；4:待收货；5:待评价；6:待确认
		params.put("page", page);//当前列表翻页索引	第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new OrderListTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取订单详情
	 * 
	 * @param token
	 * @param order_id
	 */
	public void orderGet(String token, String order_id) {
		BaseHttpInformation information = BaseHttpInformation.ORDER_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("id", order_id);//订单主键id

		BaseNetTask task = new OrderGetTask(information, params);
		executeTask(task);
	}
	public void getOrderDetail(String token, String order_id) {
		BaseHttpInformation information = BaseHttpInformation.ORDER_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("id", order_id);//订单主键id

		BaseNetTask task = new OrderGetTask2(information, params);
		executeTask(task);
	}

  /**
   * 获取用户通知列表
   */
  public void noticeList(String token, String noticetype, String page) {
      BaseHttpInformation information = BaseHttpInformation.NOTICE_LIST;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);
      params.put("noticetype", noticetype);//1：系统通知	2：评论回复 	3: 聊天人员列表页 
      params.put("page", page);

      BaseNetTask task = new NoticeListTask(information, params);
      executeTask(task);
  }

  /**
   * 通知操作
   * 
   * @param token
   * @param id
   * @param keytype
   * @param keyid
   * @param operatetype
   */
  public void noticeOperate(String token, String id, String keytype,
          String keyid, String operatetype) {
      BaseHttpInformation information = BaseHttpInformation.NOTICE_SAVEOPERATE;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);
      params.put("id", id);//通知主键id
      params.put("keytype", keytype);//关联模块类型	除了keytype=2，3外 其余keytype类型全部归类为系统通知类型)
      params.put("keyid", keyid);//关联模块主键id
      params.put("operatetype", operatetype);//操作类型
      										//1：置为已读
											//3：删除单条
											//4：删除全部 (此处服务器会根据keytype智能判断并处理)
											//5：同意好友申请
      BaseNetTask task = new CmnNetTask(information, params);
      executeTask(task);
  }

	/**申请成为田家
	 * @param token
	 * @param name
	 * @param sex
	 * @param address
	 * @param tel
	 */
	public void applyFarmer(String token, String name, String sex
			, String address, String tel, String personid) {
		BaseHttpInformation information = BaseHttpInformation.AUTH_SAVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("name", name);
		params.put("sex", sex);
		params.put("address", address);
		params.put("tel", tel);
		params.put("personid", personid);

		BaseNetTask task = new ApplyTask(information, params);
		executeTask(task);
	}
  
	/**关注或者收藏，田家/商品的操作
	 * 
	 */
	public void FolColOperate(String token, String keytype, String oper, String keyid) {
		BaseHttpInformation information = BaseHttpInformation.FOLLOW_COLLECT_SAVEOPERATE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 关联类型 1关注，2：收藏,3：点赞 
		params.put("oper", oper);// 操作	1添加 ，2取消 ;3：清空 
		params.put("keyid", keyid);//关注人用client_id,收藏使用blog_id,取消多个商品的时候blog_id用英文逗号隔开

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取关注或者收藏列表
	 */
	public void followCollectList(String token, String keytype, String keyid, 
			String lng, String lat, String page) {
		BaseHttpInformation information = BaseHttpInformation.FOLLOW_COLLECT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);//登录令牌
		params.put("keytype", keytype);// 获取类型	
		//1:收藏地标商品 
		//2:收藏有机 
		//3:关注田家 
		//4:关注集体 
		//5:收藏粮库 
		//6:收藏乐乐 
		//7:收藏走走 
		//8:收藏村游 
		//9:收藏特产 
		//10:收藏更多 
		//11:关注地标商家 
		//12:关注村游商家 
		//13:关注乐乐商家 
		//14:关注特产商家 
		//15:关注粮库商家 
		//16:关注走走露营商家 
		//17:关注走走房车商家 
		//18:关注苗木商家 
		//19:关注花卉商家 
		//20:关注家电商家 
		//21:关注日用品商家
		//22:收藏田家农货
		params.put("keyid", keyid);// 用户id
		params.put("lng", lng);// 用户id
		params.put("lat", lat);// 用户id
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new FollowCollectionListTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 收货地址列表
	 * 
	 * @param token
	 */
	public void addressList(String token) {
		BaseHttpInformation information = BaseHttpInformation.ADDRESS_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);

		BaseNetTask task = new AddressListTask(information, params);
		executeTask(task);
	}
	
	/**保存收货地址
	 * @param token
	 * @param id
	 * @param name
	 * @param tel
	 * @param province_id
	 * @param city_id
	 * @param district_id
	 * @param address
	 * @param zipcode
	 */
	public void addressSave(String token, String id, String name, String tel, 
			String province_id, String city_id, String district_id, String address, 
			String zipcode) {
		BaseHttpInformation information = BaseHttpInformation.ADDRESS_SAVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("id", id);// 当新增地址时id=0	当修改地址时id>0
		params.put("name", name);// 收件人姓名
		params.put("tel", tel);// 电话
		params.put("province_id", province_id);//省id
		params.put("city_id", city_id);//市id
		params.put("district_id", district_id);//区id
		params.put("address", address);//详细地址
		params.put("zipcode", zipcode);//邮编

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取地区（城市）列表信息
	 */
	public void districtList(String parentid) {
		BaseHttpInformation information = BaseHttpInformation.DISTRICT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("parentid", parentid);// 0：表示获取第一级别（省份或直辖市或自治区）-1：表示获取所有地级以上级别城市（含地级）

		BaseNetTask task = new DistrictListTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取所有列表信息
	 */
	public void getDistrictList(String parentid) {
		BaseHttpInformation information = BaseHttpInformation.DISTRICT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("parentid", parentid);// 0：表示获取第一级别（省份或直辖市或自治区）-1：表示获取所有地级以上级别城市（含地级）

		BaseNetTask task = new ProvinceCityDistrictListTask(information, params);
		executeTask(task);
	}

	/**
	 * 账户信息
	 * */
	public void clientInfor(String token) {
		BaseHttpInformation information = BaseHttpInformation.ACCOUNT_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);

		BaseNetTask task = new ClientInfoTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 获取提现列表
	 */
	public void cashList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.CASH_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new CashListTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取充值记录列表
	 */
	public void payList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.PAY_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new PayListTask(information, params);
		executeTask(task);
	}

  /**
   * 获取支付宝交易签名串
   */
  public void alipay(String token, String paytype, String keytype, 
          String keyid, String total_fee, String total_score, String password) {
      BaseHttpInformation information = BaseHttpInformation.ALIPAY;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);// 登陆令牌
      params.put("paytype", paytype);// 支付类型    固定传1
      params.put("keytype", keytype);// 业务类型    1：账户余额充值  2：商品立即购买
      params.put("keyid", keyid);// 业务相关id
                                 //当keytype=1时, keyid=0
                                 //当keytype=2时, keyid=bill_ids (保存订单返回的bill_ids)
      params.put("total_fee", total_fee);// 支付交易金额 单位：元(测试时统一传递0.01元)
      params.put("total_score", total_score);//支付粮票	不使用粮票时传0
	  params.put("paypassword", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));//支付密码	可选传参数，total_score!=0时需要传支付密码

      BaseNetTask task = new AlipayTradeTask(information, params);
      executeTask(task);
  }

  /**
   * 获取银联交易签名串
   */
  public void unionpay(String token, String paytype, String keytype, 
          String keyid, String total_fee, String total_score, String password) {
      BaseHttpInformation information = BaseHttpInformation.UNIONPAY;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);// 登陆令牌
      params.put("paytype", paytype);// 支付类型    固定传2
      params.put("keytype", keytype);// 业务类型    1：账户余额充值  2：商品立即购买
      params.put("keyid", keyid);// 业务相关id
                                      //当keytype=1时, keyid=0
                                      //当keytype=2时, keyid=bill_ids (保存订单返回的bill_ids)
      params.put("total_fee", total_fee);// 支付交易金额 单位：元(测试时统一传递0.01元)
      params.put("total_score", total_score);//支付粮票	不使用粮票时传0
	  params.put("paypassword", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));//支付密码	可选传参数，total_score!=0时需要传支付密码

      BaseNetTask task = new UnionTradeTask(information, params);
      executeTask(task);
  }

	/**
	 * 获取微信预支付交易会话标识
	 */
	public void weixinpay(String token, String paytype, String keytype,
						  String keyid, String total_fee, String total_score, String password) {
		BaseHttpInformation information = BaseHttpInformation.WEIXINPAY;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("paytype", paytype);// 支付类型    固定传2
		params.put("keytype", keytype);// 业务类型    1：账户余额充值  2：商品立即购买
		params.put("keyid", keyid);// 业务相关id
		params.put("total_fee", total_fee);// 支付交易金额 单位：元(测试时统一传递0.01元)
		params.put("total_score", total_score);//支付粮票	不使用粮票时传0
		params.put("paypassword", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));//支付密码	可选传参数，total_score!=0时需要传支付密码

		BaseNetTask task = new WeixinTradeTask(information, params);
		executeTask(task);
	}

  /**
   * 保存用户提现支付宝信息
   */
  public void aliSave(String token, String alipay) {
      BaseHttpInformation information = BaseHttpInformation.ALI_SAVE;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);// 登陆令牌
      params.put("alipay", alipay);// 账号

      BaseNetTask task = new CmnNetTask(information, params);
      executeTask(task);
  }

  /**
   * 用户增加提现申请
   */
  public void cashAdd(String token, String keytype, String applyfee,
          String password) {
      BaseHttpInformation information = BaseHttpInformation.CASH_ADD;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);// 登陆令牌
      params.put("keytype", keytype);//1：银行卡;2：支付宝
      params.put("applyfee", applyfee);// 申请金额 单位：元
      params.put("password", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));
//      params.put("password", password);// 本项目中为支付密码

      BaseNetTask task = new CmnNetTask(information, params);
      executeTask(task);
  }

  /**
   * 保存用户提现银行卡信息
   */
  public void bankSave(String token, String bankuser, String bankname,
          String bankcard, String bankaddress) {
      BaseHttpInformation information = BaseHttpInformation.BANK_SAVE;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);// 登陆令牌
      params.put("bankuser", bankuser);// 户主姓名
      params.put("bankname", bankname);// 开户行名称
      params.put("bankcard", bankcard);// 银行卡号
      params.put("bankaddress", bankaddress);// 开户行地址

      BaseNetTask task = new CmnNetTask(information, params);
      executeTask(task);
  }

  /**
   * 获取银行列表
   */
  public void bankList(String token, String page) {
      BaseHttpInformation information = BaseHttpInformation.BANK_LIST;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);// 登陆令牌
      params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

      BaseNetTask task = new BankListTask(information, params);
      executeTask(task);
  }

	/**发布帖子、农货、日志、唠嗑
	 * @param token
	 * @param keytype
	 * @param name
	 * @param price
	 * @param weight
	 * @param leftcount
	 * @param expressfee
	 * @param typename
	 * @param content
	 * @param keyid
	 */
	public void blogAdd(String token, String keytype, String name, String price, String oldprice, String score
			, String weight, String spec, String leftcount, String expressfee, String typename
			, String content, String keyid, String returnflag, String saleflag) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("keytype", keytype);//1：田家农货；2：唠嗑帖子；3：田家日志
		params.put("name",name);//标题/农货名称	keytype=3时传“无”
		params.put("price",price);//农货价格	keytyp=2,3时传“无”
		params.put("oldprice",oldprice);//农货价格	keytyp=2,3时传“无”
		params.put("score",score);//农货价格	keytyp=2,3时传“无”
		params.put("weight",weight);//农货重量	单位斤，keytyp=2,3时传“无”
		params.put("spec",spec);//农货规格	keytype=2,3时传“无”
		params.put("leftcount",leftcount);//农货库存	keytyp=2,3时传“无”
		params.put("expressfee",expressfee);//运费	农货按每斤计算,keytyp=2,3时传“无”
		params.put("typename",typename);//标签	求助或答疑,keytyp=1,3时传“无”
		params.put("content",content);//内容详情	keytyp=1时传“无”
		params.put("keyid",keyid);//田家日志对应的农货id	keytyp=1,2时传“无”,修改时传blog_id
		params.put("returnflag",returnflag);//是否支持退货	keytyp=1时0不支持 1支持;其他情况传"无"
		params.put("saleflag",saleflag);//农货售卖状态	可传参数keytype=1,keyid=blog_id时，0 关闭 1 进行中

		BaseNetTask task = new BlogAddTask(information, params);
		executeTask(task);
	}

    /**发布定制商品
     * @param token
     * @param name
     * @param price
     * @param score
     * @param good_unit
     * @param yield_range
     * @param send_date
     * @param send_address
     * @param package_style
     * @param spec
     * @param typename
     * @param content
     * @param keyid
     * @param saleflag
     */
    public void addCustomGoods(String token, String name, String price, String oldprice, String score,
                               String good_unit, String yield_range, String send_date, String send_address,
                               String package_style, String spec, String typename,
                               String content, String keyid, String saleflag) {
        BaseHttpInformation information = BaseHttpInformation.CUSTOM_GOODS_ADD;
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("token", token);
        params.put("name",name);
        params.put("price",price);
		params.put("oldprice", oldprice);//农货原价	keytype=2,3时传“无”
        params.put("score",score);
        params.put("good_unit",good_unit);
        params.put("yield_range",yield_range);
        params.put("send_date",send_date);
        params.put("send_address",send_address);//农货库存	keytyp=2,3时传“无”
        params.put("package_style",package_style);//运费	农货按每斤计算,keytyp=2,3时传“无”
        params.put("spec",spec);
        params.put("typename",typename);
        params.put("content",content);
        params.put("keyid",keyid);
        params.put("saleflag",saleflag);

        BaseNetTask task = new CustomGoodsAddTask(information, params);
        executeTask(task);
    }

	/**
	 * 获取购物车列表
	 */
	public void cartList(String token) {
		BaseHttpInformation information = BaseHttpInformation.CART_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌

		BaseNetTask task = new CartListTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 添加到购物车
	 */
	public void cartAdd(String token, String keyid, String buycount, String specid) {
		BaseHttpInformation information = BaseHttpInformation.CART_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keyid", keyid);//购买商品主键id	比如blog_id,非常重要，必须传对
		params.put("buycount", buycount);//购买份数	默认传1
		params.put("specid", specid);//规格id	没有对应规格传0

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 购物车操作
	 * 
	 * @param token
	 * @param keytype
	 * @param buycount
	 */
	public void cartSaveoperate(String token, String id, String keytype, String buycount) {
		BaseHttpInformation information = BaseHttpInformation.CART_SAVEOPERATE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
        params.put("id", id);//购物车记录主键id，从 购物车列表 获取
		params.put("keytype", keytype);//
                            		//1：单个删除
                            		//2：清空购物车(此时id固定传0)
                            		//3: 更改购买数量
                            		//4: 清空已过期购物车
		params.put("buycount", buycount);//当且仅当keytype=3时有效 其余情况，固定传0

		BaseNetTask task = new CartSaveOperateTask(information, params);
		executeTask(task);
	}

	/**
	 * 提交订单
	 */
	public void orderAdd(String token,  String keytype, String keyid, String specid, String addition_ids,
                         String address_id, String buycount, String contact_name, String contact_tel,
                         String memo, String startdate, String personal_id) {
		BaseHttpInformation information = BaseHttpInformation.ORDER_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌码
		params.put("keytype", keytype);// 订单方式	1：从购物车中来 2：立即购买 3：定制订单 4：走走订单
		params.put("keyid", keyid);// 相关id	
									//当keytype=1时：keyid=cart_id (多个用逗号分隔)
									//当keytype=2，4时：keyid=blog_id；
									//当keytype=3时，keyid=good_id
        params.put("specid", specid);//
        params.put("addition_ids", addition_ids);//
		params.put("address_id", address_id);//收货地址id    keytype=3,4时，可传“无”
		params.put("buycount", buycount);// 购买数量	一个大于零的整数
		params.put("contact_name", contact_name);//联系人名字	当keytype=1,2时，可传“无”
		params.put("contact_tel", contact_tel);//联系人电话	当keytype=1,2时，可传“无”
		params.put("memo", memo);//具体描述	当keytype!=3时，可传“无”
		params.put("startdate", startdate);// 走走开始时间	当keytype!=4时，可传“无”
		params.put("personal_id", personal_id);// 预约走走的身份证号	当keytype!=4时，可传“无”

		BaseNetTask task = new OrderAddTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 操作订单
	 * 
	 * @param token
	 * @param keyid
	 * @param keytype
	 * @param reason
	 * @param description
	 * @param shipping_name
	 * @param shipping_num
	 */
	public void orderSaveoperate(String token, String keyid, String keytype,
			String reason, String description, String shipping_name, String shipping_num) {
		BaseHttpInformation information = BaseHttpInformation.ORDER_SAVEOPERATE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
        params.put("keyid", keyid);//相关id
        							//keytype=7时,keyid=[bill_id,pay_username]；
        							//keytype=1,2,4,5,6,14,15时keyid=bill_id；
        							//keytype=3,8,9,10,11,12,13时，keyid=goods_id（订单货品id）
        params.put("keytype", keytype);//操作类型
							        //1：删除订单	
							        //2：确定收货
							        //3：申请退货 
							        //4：发货 
							        //5：同意定制/预约 
							        //6：拒绝定制/预约 
							        //7：找人代付 
							        //8：撤销退款申请 
							        //9：修改退款申请 
							        //10：同意退款申请 
							        //11：拒绝退款申请 
							        //12：退货发货 
							        //13：确认收到退货 
							    	//14：接受代付 
							    	//15：拒绝代付 
		params.put("reason", reason);// 申请原因/拒绝原因
		params.put("description", description);// 原因说明
		params.put("shipping_name", shipping_name);// 快递名称
		params.put("shipping_num", shipping_num);// 快递号

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取用户详细信息
	 */
	public void clientGet(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.CLIENT_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("id", id);

		BaseNetTask task = new ClientGetTask(information, params);
		executeTask(task);
	}

	/**田主对自己可定制的土地进行操作
	 * 
	 */
	public void landAdd(String token, String mu_num, String good_names, String prices, 
			String expect_senddates) {
		BaseHttpInformation information = BaseHttpInformation.LAND_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("mu_num", mu_num);
		params.put("good_names", good_names);
		params.put("prices", prices);
		params.put("expect_senddates", expect_senddates);

		BaseNetTask task = new LandAddTask(information, params);
		executeTask(task);
	}

	/**
	 * 帖子操作
	 */
	public void blogSaveoperate(String token, String keytype, String id) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_SAVEOPERATE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌码
		params.put("keytype", keytype);//操作类型	1：商品删除；2商品下架；3商品上架；4定制删除；5定制下架；6定制上架；7定制附加服务删除(系统保留取值)
		params.put("id", id);// 多个id用英文逗号隔开

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取帖子回复评论列表
	 */
	public void replyList(String keytype, String keyid, String page) {
		BaseHttpInformation information = BaseHttpInformation.REPLY_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("keytype", keytype);//2：sys_blog,3：定制模型
		params.put("keyid", keyid);//当keytype=2时：keyid=blog_id, keytype=3：keyid=定制商品id
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new ReplyListTask(information, params);
		executeTask(task);
	}

	/**
	 * 添加评论
	 */
	public void replyAdd(String token, String keytype, String keyid,
			String content, String parentid) {
		BaseHttpInformation information = BaseHttpInformation.REPLY_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 业务类型	keytype=2：sys_blog模型 
		params.put("keyid", keyid);// 主键id	当keytype=2时：keyid=blog_id 
		params.put("content", content);// 回复内容
		params.put("parentid", parentid);// 父楼主键 id, 仅在跟楼回复时有效，否则固定传0

		BaseNetTask task = new ReplyAddTask(information, params);
		executeTask(task);
	}

	/**余额购买
	 * 
	 */
	public void feeaccountRemove(String token, String keytype, String keyid,
			String password, String total_fee, String total_score) {
		BaseHttpInformation information = BaseHttpInformation.FEEACCOUNT_REMOVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 关联业务类型		1：购买商品
		params.put("keyid", keyid);// 关联业务主键		当keytype=1时，keyid=bill_ids (保存订单返回的bill_ids);
		params.put("total_fee", total_fee);//总额
        params.put("total_score", total_score);//总额
		params.put("paypassword", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));//支付密码

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**全粮票购买
	 * 
	 */
	public void scoreRemove(String token, String keytype, String keyid,
			String total_fee, String password) {
		BaseHttpInformation information = BaseHttpInformation.SCORE_REMOVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 关联业务类型		1：购买商品
		params.put("keyid", keyid);// 关联业务主键		当keytype=1时，keyid=bill_ids (保存订单返回的bill_ids);
		params.put("total_fee", total_fee);//总额
		params.put("paypassword", Md5Util.getMd5(XtomConfig.DATAKEY + Md5Util.getMd5(password)));//支付密码

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 粮票消费记录
	 */
	public void foodStampCostList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.SCORE_COST_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new CouponRecordListTask(information, params);
		executeTask(task);
	}
	/**
	 * 获取粮票记录列表
	 */
	public void foodStampGainList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.SCORE_GAIN_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new CouponRecordListTask(information, params);
		executeTask(task);
	}

  /**粮票转赠
   *
   */
  public void couponConvert(String token, String username, String nickname, 
		  String score, String keytype) {
      BaseHttpInformation information = BaseHttpInformation.SCORE_SAVEOPERATOR;
      HashMap<String, String> params = new HashMap<String, String>();
      params.put("token", token);
      params.put("username", username);//对方账号
      params.put("nickname", nickname);//对方昵称
      params.put("score", score);//转账数目
      params.put("keytype", keytype);//类型	可选传参数,1通过扫码转给平台;2通过扫码转给商家;3通过扫码转给个人

      BaseNetTask task = new CmnNetTask(information, params);
      executeTask(task);
  }
	
	/**获取走走商家地区列表
	 * 
	 */
	public void zouzouDistrictList(String token, String keytype, String keyid) {
		BaseHttpInformation information = BaseHttpInformation.TRAVEL_ADDRESS_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 	没有登录传空字符串
		params.put("keytype", keytype);// 地区类型	1：省级 2：市级 3：县级
		params.put("keyid", keyid);// 地区名称	对应的地区名称，keytype=1时传"无"
		BaseNetTask task = new ZouzouDistrictListTask(information, params);
		executeTask(task);
	}

	/**走走不可用日期列表
	 * 
	 * @param token
	 * @param page
	 */
	public void zouzouDateList(String token, String id, String month, String page) {
		BaseHttpInformation information = BaseHttpInformation.TRAVEL_DATE_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("id", id);
		params.put("month", month);
		params.put("page", page);

		BaseNetTask task = new ZouzouDateListTask(information, params);
		executeTask(task);
	}

	/**
	 * 用户访问记录列表
	 */
	public void historyList(String token, String keytype, String lng, String lat, String page) {
		BaseHttpInformation information = BaseHttpInformation.ACCESS_HISTORY_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登录令牌
		params.put("keytype", keytype);// 访问记录类型	
									//1：田家 
									//2：村游 
									//3：粮库 
									//4：乐乐 
									//5：走走露营 
									//6：走走房车 
		params.put("lng", lng);// 经度
		params.put("lat", lat);// 纬度
		params.put("page", page);// 第几页	从0开始

		BaseNetTask task = new FootprintListTask(information, params);
		executeTask(task);
	}

	/**
	 * 清空用户访问记录
	 */
	public void historyClear(String token, String keytype) {
		BaseHttpInformation information = BaseHttpInformation.ACCESS_HISTORY_CLEAR;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 访问记录类型	1：田家  2：村游 ；3：粮库 ；4：乐乐 ；5：走走露营 ；6：走走房车 

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 获取售后列表
	 */
	public void afterSalesList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.SALE_SUPPORT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
//		params.put("merchant_id", token);// 登陆令牌
		params.put("token", token);// 登陆令牌
		params.put("servicetype", "1");//售后类型	1:退货 2：换货
		params.put("page", page);// 登陆令牌

		BaseNetTask task = new AfterSalesListTask(information, params);
		executeTask(task);
	}

	/**获取卖家售后详情
	 * @param token
	 * @param id
	 */
	public void getFarmerAfterDetail(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.FARMER_AFTERSERVICE_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("id", id);//订单货品id

		BaseNetTask task = new AfterSalesTask(information, params);
		executeTask(task);
	}

	/**获取买家售后详情
	 * @param token
	 * @param id
	 */
	public void getAfterSalesDtl(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.SALE_SUPPORT_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("id", id);//订单货品id

		BaseNetTask task = new AfterSalesTask(information, params);
		executeTask(task);
	}

	/**
	 * 田家农货订单
	 * 
	 * @param token
	 * @param keytype     
	 * @param page
	 */
	public void farmerOrderList(String token, String keytype, String page) {
		BaseHttpInformation information = BaseHttpInformation.FARMER_ORDER_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("keytype", keytype);//1:全部;2:待发货;4:待支付;5:已发货;6:已完成
		params.put("page", page);//当前列表翻页索引	第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new FarmerOrderListTask(information, params);
		executeTask(task);
	}

	/**
	 * 田家农货订单
	 *
	 * @param token
	 * @param keytype
	 * @param page
	 */
	public void getFarmerCustomOrderList(String token, String keytype, String page) {
		BaseHttpInformation information = BaseHttpInformation.FARMER_CUSTOM_ORDER_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("keytype", keytype);//1已发货；2待发货
		params.put("page", page);//当前列表翻页索引	第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new FarmerCustomOrderListTask(information, params);
		executeTask(task);
	}

	/**
	 * 田家农货问题订单
	 *
	 * @param token
	 * @param page
	 */
	public void getFarmerAfterSalesOrderList(String token, String keytype, String page) {
		BaseHttpInformation information = BaseHttpInformation.FARMER_AFTERSERVICE_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);
		params.put("keytype", keytype);//售后状态	1待处理；2已处理；3已完成
		params.put("page", page);//当前列表翻页索引	第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new FarmerReturnOrderListTask(information, params);
		executeTask(task);
	}

	/**添加订单商品评论
	 *
	 */
	public void goodsReplyAdd(String token, String keytype, String keyid, 
			String content, String stars) {
		BaseHttpInformation information = BaseHttpInformation.GOODS_REPLY_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 业务类型	keytype=2：sys_blog模型 
		params.put("keyid", keyid);// 主键id	当keytype=2时：keyid=goods_id其余依次扩展... 
		params.put("content", content);// 回复内容
		params.put("stars", stars);// 星数	0-5

		BaseNetTask task = new ReplyAddTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 退货原因类别列表
	 */
	public void returnTypeList(String token) {
		BaseHttpInformation information = BaseHttpInformation.RETURNTYPE_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 没有的话传空

		BaseNetTask task = new ReturnTypeListTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 发票内容列表
	 */
	public void invoiceContentList(String token) {
		BaseHttpInformation information = BaseHttpInformation.BILLS_CONTENT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 没有的话传空

		BaseNetTask task = new ReturnTypeListTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取家族列表
	 */
	public void familyList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.FAMILY_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new FamilyListTask(information, params);
		executeTask(task);
	}

	/**
	 * 真聊天消息推送
	 */
	public void chatpushAdd(String token, String msgtype, String content,
			String group_id, String recv_id, String group_name) {
		BaseHttpInformation information = BaseHttpInformation.CHATPUSH_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("msgtype", msgtype);// 真聊天消息类型1：文本 2：图片 3：音频 4：视频
		params.put("content", content);// 真聊天消息内容 客户端可以截取前50字
		params.put("recv_id", recv_id);// 接收方client_id主键 群聊时固定传0
		params.put("group_id", group_id);// 群组主键id 单聊时固定传0
		params.put("group_name", group_name);// 群组名称 单聊时固定传"无"

		BaseNetTask task = new ChatpushAddTask(information, params);
		executeTask(task);
	}
	
	/**
	 * 对商品中的图片进行删除
	 */
	public void imgDel(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.IMG_DELOPERATE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("id", id);// 图片主键id

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 易家推荐列表
	 */
	public void yijiaRecommendList(String keyword, String page) {
		BaseHttpInformation information = BaseHttpInformation.YIJIA_RECOMMEND;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("keyword", keyword);// 登陆令牌
		params.put("page", page);// 1：按编码获取	2：按id获取

		BaseNetTask task = new YijiaRecommendListTask(information, params);
		executeTask(task);
	}

	/**
	 * 特产民族列表
	 */
	public void getNationList() {
		BaseHttpInformation information = BaseHttpInformation.NATION_LIST;
		HashMap<String, String> params = new HashMap<String, String>();

		BaseNetTask task = new NationListTask(information, params);
		executeTask(task);
	}

	/**
	 * 购物车商品数量
	 */
	public void getCartCount(String token) {
		BaseHttpInformation information = BaseHttpInformation.CART_COUNT;
		HashMap<String, String> params = new HashMap<String, String>();

		params.put("token", token);// 登陆令牌
		
		BaseNetTask task = new CartCountTask(information, params);
		executeTask(task);
	}

	/**
	 * 保存发票
	 */
    public void saveInvoice(String token, String id, String bill_id, String bills_type, String bills_head,
            String bills_fee, String email, String bills_content) {
        BaseHttpInformation information = BaseHttpInformation.INVOICE_SAVE;
        HashMap<String, String> params = new HashMap<String, String>();
        params.put("token", token);// 登陆令牌
        params.put("id", id);// 发票id 新增时传0
        params.put("bill_id", bill_id);// 订单id
        params.put("bills_type", bills_type);// 发票类型 1纸质；2电子
        params.put("bills_head", bills_head);// 发票抬头
        params.put("bills_fee", bills_fee);// 发票金额
        params.put("email", email);// 电子邮箱地址
        params.put("bills_content", bills_content);// 发票内容

        BaseNetTask task = new CmnNetTask(information, params);
        executeTask(task);
    }

	/**
	 * 获取订单运费总和
	 */
	public void billExpressGet(String token, String blog_ids, String spec_ids, String buycounts, String address_id) {
		BaseHttpInformation information = BaseHttpInformation.BILL_EXPRESSFEE_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("blog_ids", blog_ids);// 商品id	多个商品用英文逗号隔开
		params.put("spec_ids", spec_ids);// 商品规格id	多个商品规格用英文逗号隔开
		params.put("buycounts", buycounts);// 	商品购买数量	多个商品用英文逗号隔开
		params.put("address_id", address_id);// 收货地址id

		BaseNetTask task = new BillExpressGetTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取交易记录
	 */
	public void getTradeList(String token, String keytype, String page) {
		BaseHttpInformation information = BaseHttpInformation.TRADE_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);//1：全部;2：消费;3：赚取;4：退款所得;5：提现；6:充值
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new TradeRecordListTask(information, params);
		executeTask(task);
	}

	/**
	 * 保存用户提现银行卡信息
	 */
	public void delOneReply(String token, String id) {
		BaseHttpInformation information = BaseHttpInformation.REPLY_REMOVE;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("id", id);// id

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**广告点击记录接口
	 * @param token： 登陆令牌
	 * @param keytype : 广告类型	1首页广告;2模块头部广告;3易家推荐
	 * @param keyid : 广告id
	 */
	public void ADRecord(String token, String keytype, String keyid) {
		BaseHttpInformation information = BaseHttpInformation.ADVISIT_RECORD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 广告类型	1首页广告;2模块头部广告;3易家推荐
		params.put("keyid", keyid);//广告id

		BaseNetTask task = new CmnNetTask(information, params);
		executeTask(task);
	}

	/**
	 * 定制商品列表
     * @param keyid
     * @param keytype
     * @param typename
     * @param topflag
     * @param ordertype
     * @param orderby
     * @param page
     */
	public void getCustomBlogList(String keyid, String keytype, String typename, String topflag,
								  String orderby, String ordertype, String page) {
		BaseHttpInformation information = BaseHttpInformation.CUSTOM_BLOG_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("keyid", keyid);// 田家id	获取全部传0
		params.put("keytype", keytype);// 类型	1销售中；2仓库中
		params.put("typename", typename);// 可选传参数，分类名称
		params.put("topflag", topflag);// 可选传参数，1获取推荐定制
		params.put("orderby", orderby);// 排序类型	0时间排序；1价格排序；2销量排序
		params.put("ordertype", ordertype);// 排序规则	desc:降序；asc:升序
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new CustomBlogListTask(information, params);
		executeTask(task);
	}

	/**
	 * 商品分类列表
     * @param keytype     类型	1粮库;2农需;3定制;4农货
     * @param parentid      父节点id	获取一级分类时候传0
     */
	public void getBlogTypeList(String keytype, String parentid) {
		BaseHttpInformation information = BaseHttpInformation.BLOGTYPE_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("keytype", keytype);
		params.put("parentid", parentid);

		BaseNetTask task = new BlogTypeListTask(information, params);
		executeTask(task);
	}

	/**
	 * 获取每日收益列表
	 */
	public void getRebateList(String token, String page) {
		BaseHttpInformation information = BaseHttpInformation.REBAT_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("page", page);// 当前列表翻页索引 第一页时请传递page=0，翻页时依次递增。

		BaseNetTask task = new RebateListTask(information, params);
		executeTask(task);
	}

	/**
	 *
	 * @param keyid
	 * @param spec_name
	 */
	public void getBlogSpecName(String keyid, String spec_name) {
		BaseHttpInformation information = BaseHttpInformation.BLOG_SPECNAME_GET;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("keyid", keyid);// 商品主键id
		params.put("spec_name", spec_name);// 规格内容

		BaseNetTask task = new BlogSpecNameGetTask(information, params);
		executeTask(task);
	}

	/**
	 * 定制商品数量
	 * @param token
	 */
	public void getCustomCount(String token, String keytype) {
		BaseHttpInformation information = BaseHttpInformation.CUSTOM_BLOG_COUNT;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("keytype", keytype);// 1定制商品；2农货商品

		BaseNetTask task = new CustomizeCountTask(information, params);
		executeTask(task);
	}

	/**
	 * "添加定制附加服务
	 */
	public void addCustomAddition(String token, String good_id, String price, String content, String keyid) {
		BaseHttpInformation information = BaseHttpInformation.CUSTOM_ADDITION_ADD;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("token", token);// 登陆令牌
		params.put("good_id", good_id);
        params.put("price", price);
        params.put("content", content);
        params.put("keyid", keyid);

		BaseNetTask task = new CustomAdditionAddTask(information, params);
		executeTask(task);
	}

	/**
	 * 新手指南列表
	 */
	public void getGuideList(String page) {
		BaseHttpInformation information = BaseHttpInformation.GUIDE_LIST;
		HashMap<String, String> params = new HashMap<String, String>();
		params.put("page", page);

		BaseNetTask task = new GuideListTask(information, params);
		executeTask(task);
	}
}
